(Cuasi)Taller de (Pseudo)Introducción a R

R en Rosario no se hace responsable de las opiniones, imágenes y textos que se muestran en esta presentación

Cómo es la iniciación a R en la mayoría de los casos

R en Rosario existe para evitarlo o por lo menos que arda menos el impacto.

Qué es R

  • R es un lenguaje de programación orientado a la realización de procesos estadísticos y gráficos.
  • Sus comienzos se remontan a los años 1993/96 y fue creado por Ross Ihaka and Robert Gentleman (Auckland University, Nueva Zelanda), basándose en el lenguaje S creado por John Chambers en 1976 para Bell Labs (parte de AT&T, desarrolladores de C).
  • A diferencia de S, R es un software de código abierto (“open source”). Es gratuito.

Filosofía de R: “hibridez”

  • R propone satisfacer dos modalidades de trabajo muy frecuentes para los analistas de datos:

    • Con una interfaz interactiva, con línea de comandos: se dispone de una consola, donde se tipea un comando, se da enter y algo sucede. Voy viendo y haciendo.

    • Como lenguaje de programación: para tareas más complejas, escribimos un programa (o “script”) y lo ejecutamos en un servidor o desde la terminal de la compu. No se trabaja comando por comando.

  • R es un híbrido entre estas dos modalidades.

Filosofía de R: “hibridez”

  • En las palabras de John Chambers (creador de S, base de R):

“We wanted users to be able to begin in an interactive environment, where they did not consciously think of themselves as programming. Then as their needs became clearer and their sophistication increased, they should be able to slide gradually into programming, when the language and system aspects would become more important.”

  • Usuario \(\rightarrow\) Programador

Filosofía de R: “Software Libre”

  • R se distribuye bajo la licencia para software GNU GPLv2 que establece las siguientes libertades:

    • Libertad de usar el programa con cualquier propósito.
    • Libertad de ver cómo fue hecho, cómo funciona y modificarlo.
    • Libertad de distribuir copias.
    • Libertad de publicar modificaciones y agregados para que estén disponibles para la comunidad.

Filosofía de R: “comunidad”

  • R tiene una comunidad de usuarios muy activa, de las más diversas áreas (es interdisciplinario).
  • Probablemente, casi todo lo que quieras hacer, alguien más ya lo pensó, lo hizo y dejó un hermoso tutorial por ahí para que vos también lo puedas hacer (es extensible).
  • Cualquier mensaje de error que te aparezca, seguro tiene páginas y páginas con gente debatiendo cómo solucionarlo (es comunitario).
  • Existen numerosas páginas, blogs y foros de ayuda en internet (por ejemplo, StackOverflow).

Otras características de R

  • Se integra con otras herramientas (como Latex) para generar manuscritos y presentaciones que pueden actualizarse automáticamente.
  • Disponible en cualquier plataforma de sistema (Windows, OS X, Linux).
  • Elimina la necesidad de recurrir a combinaciones de múltiples programas empleados en el proceso del análisis de datos.
  • Provee herramientas gráficas para generar figuras de excelente calidad listas para publicación.
  • Adhiere a los principios de la investigación reproducible.

Diseño del sistema R

Se divide en dos partes:

  • La base (“base R System”): se descarga desde CRAN (“Comprehensive R Archive Network”). Funciones básicas y fundamentales de R.

Diseño del sistema R

  • El resto: incluye miles de paquetes con funcionalidad específica que el usuario puede elegir descargar también desde CRAN u otros lugares.

Cosas para hacer en R. Análisis estadísticos

Cosas para hacer en R. Gráficos

Cosas para hacer en R. Documentos para presentaciones e informes

Algunas otras cosas para hacer en R.

  • Gráficos interactivos
  • Libros y publicaciones online
  • Aplicaciones para páginas web
  • Material para dar clases
  • Etc., etc., etc., …

Qué es RStudio

  • RStudio es un entorno de desarrollo integrado (IDE) para R.
  • Un entorno de desarrollo integrado es una aplicación informática que proporciona servicios integrales para facilitarle al programador el desarrollo de software.

Qué es RStudio

  • permite abrir y editar varios archivos a la vez
  • incluye autocompletado y resaltador de código
  • permite ejecutar porciones de código con sólo seleccionarlos en el programa
  • muestra el workspace (todos los elementos que hemos creado con nuestro programa)
  • muestra el historial de sentencias ejecutadas
  • integra ayuda y documentación
  • integra la gestión de paquetes adicionales
  • gestiona proyectos de trabajo
  • gestiona gráficos
  • se conecta a la línea de comandos de la compu
  • y mucho más!

Conociendo a RStudio

  • Cuando se abre RStudio por primera vez se pueden visualizar tres paneles:
Captura de pantalla de RStudio

Captura de pantalla de RStudio

Conociendo a RStudio

  • La consola. Es la ventana que se comunica con el motor de R.
  • Arriba a la derecha, el panel con las pestañas:

    • Environment (ambiente): muestra todas las cosas (objetos) que R tiene en la cabeza (memoria), como conjuntos de datos, modelos, resultados, etc.
    • History (historial): lista todas las instrucciones que R ha corrido.
  • Abajo a la derecha: panel con las pestañas Files, Plots, Packages, Help y Viewer. Tienen lo que sus nombres indican!

Uso básico de R: como una calculadora

1 + 2
## [1] 3
5 * 3
## [1] 15
exp(2)
## [1] 7.389056
sqrt(100)
## [1] 10
1:20
##  [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
log(1:20)
##  [1] 0.0000000 0.6931472 1.0986123 1.3862944 1.6094379 1.7917595 1.9459101
##  [8] 2.0794415 2.1972246 2.3025851 2.3978953 2.4849066 2.5649494 2.6390573
## [15] 2.7080502 2.7725887 2.8332133 2.8903718 2.9444390 2.9957323

Conceptos básicos fundamentales

  • Objetos
  • Funciones
  • Tipos de datos
  • Mensajes con advertencias
  • Mensajes con errores
  • Script de código
  • Uso de comentarios
  • Paquetes
  • Workspace: ls(), rm(), rm(list = ls()), save.image(), load()
  • Working directory: getwd(), setwd(), list.files()

Otras cuestiones importantes

  • La función c()
  • Operadores lógicos
  • Indexar vectores
x <- c(10.4, 5.6, 3.1, 6.4, 21.7)

# Mostrar sólo el primer elemento
x[1]
## [1] 10.4
# Mostrar los primeros tres elementos
x[1:3]
## [1] 10.4  5.6  3.1
#Mostrar todos los elementos menos el cuarto
x[-4]
## [1] 10.4  5.6  3.1 21.7
# Indexar con valores lógicos
x[x > 10]
## [1] 10.4 21.7

Cosas que yo también hubiese querido saber cuando empecé a usar R

  • Usar RStudio
  • Usar Knitr
  • Organizar mi análisis (limpieza de datos, visualización, análisis)
  • Usar control de versiones
  • Preguntar dando un ejemplo reproducible
  • Usar tidyverse

S.O.S. en R

Blogs y portales de ayuda:

S.O.S. en R

Libros:

Cheatsheets (machetes), por ejemplo, los de RStudio

Material de clases que están online, por ejemplo, STATS545

Twitter #rstats

¡Muchas gracias!